package com.dragon.modules.yuegou.model.live;

import com.dragon.modules.yuegou.entity.live.ReviewSpuEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 商品送审表模型类
 * 
 * @author ZSH
 * @date 2020-06-12 09:57:51
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class ReviewSpu extends ReviewSpuEntity {

	/**
	 * 构造一个空商品送审表模型对象
	 */
	public ReviewSpu(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个商品送审表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public ReviewSpu(ReviewSpuEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商品送审表模型对象
	 * 
	 * @param other 其它对象
	 */
	public ReviewSpu(ReviewSpu other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置Id
	 * 
	 * @param id Id
	 * @return 当前对象
	 */
    public ReviewSpu id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈Id
	 * 
	 * @param busdId 商圈Id
	 * @return 当前对象
	 */
    public ReviewSpu busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getSpuId() {
    	return spuId;
    }

    /**
	 * 设置spuId
	 * 
	 * @param spuId spuId
	 * @return 当前对象
	 */
    public ReviewSpu spuId(String spuId) {
    	this.spuId = spuId;
    	return this;
    }

	@Override
	public String getGoodsId() {
    	return goodsId;
    }

    /**
	 * 设置微信商品Id
	 * 
	 * @param goodsId 微信商品Id
	 * @return 当前对象
	 */
    public ReviewSpu goodsId(String goodsId) {
    	this.goodsId = goodsId;
    	return this;
    }

	@Override
	public String getAuditId() {
    	return auditId;
    }

    /**
	 * 设置微信商品审核Id
	 * 
	 * @param auditId 微信商品审核Id
	 * @return 当前对象
	 */
    public ReviewSpu auditId(String auditId) {
    	this.auditId = auditId;
    	return this;
    }

	@Override
	public String getStatus() {
    	return status;
    }

    /**
	 * 设置商品状态: 0：未审核。1：审核中，2：审核通过，3：审核驳回
	 * 
	 * @param status 商品状态: 0：未审核。1：审核中，2：审核通过，3：审核驳回
	 * @return 当前对象
	 */
    public ReviewSpu status(String status) {
    	this.status = status;
    	return this;
    }

	@Override
	public String getName() {
    	return name;
    }

    /**
	 * 设置商品名称
	 * 
	 * @param name 商品名称
	 * @return 当前对象
	 */
    public ReviewSpu name(String name) {
    	this.name = name;
    	return this;
    }

	@Override
	public String getCoverImgUrl() {
    	return coverImgUrl;
    }

    /**
	 * 设置商品图片
	 * 
	 * @param coverImgUrl 商品图片
	 * @return 当前对象
	 */
    public ReviewSpu coverImgUrl(String coverImgUrl) {
    	this.coverImgUrl = coverImgUrl;
    	return this;
    }

	@Override
	public String getCoverImgUrlMedia() {
    	return coverImgUrlMedia;
    }

    /**
	 * 设置商品图片 微信mediaID
	 * 
	 * @param coverImgUrlMedia 商品图片 微信mediaID
	 * @return 当前对象
	 */
    public ReviewSpu coverImgUrlMedia(String coverImgUrlMedia) {
    	this.coverImgUrlMedia = coverImgUrlMedia;
    	return this;
    }

	@Override
	public String getPriceType() {
    	return priceType;
    }

    /**
	 * 设置价格类型: 1：一口价，2：价格区间，3：显示折扣价
	 * 
	 * @param priceType 价格类型: 1：一口价，2：价格区间，3：显示折扣价
	 * @return 当前对象
	 */
    public ReviewSpu priceType(String priceType) {
    	this.priceType = priceType;
    	return this;
    }

	@Override
	public BigDecimal getPrice() {
    	return price;
    }

    /**
	 * 设置价格 一口价 or 价格左边界 or 原价
	 * 
	 * @param price 价格 一口价 or 价格左边界 or 原价
	 * @return 当前对象
	 */
    public ReviewSpu price(BigDecimal price) {
    	this.price = price;
    	return this;
    }

	@Override
	public BigDecimal getPrice2() {
    	return price2;
    }

    /**
	 * 设置价格 价格右边界 or 折扣价
	 * 
	 * @param price2 价格 价格右边界 or 折扣价
	 * @return 当前对象
	 */
    public ReviewSpu price2(BigDecimal price2) {
    	this.price2 = price2;
    	return this;
    }

	@Override
	public String getUrl() {
    	return url;
    }

    /**
	 * 设置商品详情页的小程序路径
	 * 
	 * @param url 商品详情页的小程序路径
	 * @return 当前对象
	 */
    public ReviewSpu url(String url) {
    	this.url = url;
    	return this;
    }
}
